package com.bigfire.dtm.api.web.facade;

import com.bigfire.dtm.shared.common.ResponseWrapper;
import com.bigfire.dtm.shared.constant.ApiConstants;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 秒结接口定义
 * @author Damon S.
 * @version v1.0.1
 * @date 2019年10月30日 16:06
 */
@RequestMapping(value = "/settlement" + ApiConstants.API_V1 + "/realtime", produces = MediaType.APPLICATION_JSON_VALUE)
public interface RealtimeSettleFacade {

    /**
     * 检查当前秒结状态
     * @return 返回状态信息
     */
    @GetMapping("/state")
    ResponseWrapper<String> checkState();

    /**
     * 手动加载结算规则数据
     * @return 返回是否加载成功
     */
    @GetMapping("/settings")
    ResponseWrapper<Boolean> reload();

    /**
     * 启动秒结线程
     * @return 返回包装对象
     */
    @GetMapping("/launch")
    ResponseWrapper<Boolean> start();

    /**
     * 暂停秒结操作
     * @return 返回包装对象
     */
    @PutMapping("/pause")
    ResponseWrapper<Void> pause();

    /**
     * 继续执行秒结操作
     * @return 返回包装对象
     */
    @PutMapping("/restore")
    ResponseWrapper<Void> restore();

    /**
     * 跳过当前订单的秒结
     * @return 返回包装对象
     */
    @PutMapping("/skip")
    ResponseWrapper<Void> skip();
}
